A table of data within a database server can be partitioned into multiple subsets. There are different ways to partition a table (e.g., range, list, round robin, etc.). Data Manipulation Language (DML) operations, as well as other operations, are allowed on the partitions. Currently, for every operation that is performed on a partition, a table level lock is applied, thereby preventing any operation from being performed on any other part (e.g., any other partition) of the table. In one example, there are 10 partitions in a table (e.g., partitions P1, P2, . . . , P10). A split operation is performed on partition P1, splitting partition P1 into P1′ and P1″ such that there are now 11 partitions in the table instead of 10 partitions. During the split operation on partition P1, a table level lock is applied to the table in order to prevent any other operations on partition P1 during the performance of the split operation. The problem is that any concurrent operations on other partitions in the table (e.g., select from other partitions, insert into another partition, update values in other partitions) are placed on hold due to the table level lock. The other operations have to wait until the splitting of partition P1 into P1′ and P1″ is complete.